package com.efast.cafe.portal.service.company;

import java.util.List;
import java.util.Map;

import com.efast.cafe.portal.entity.company.PortalCompanyUser;
import com.efast.cafe.portal.entity.company.PortalCompanyUserReporttoTreeDto;
import com.efast.cafe.portal.remote.company.PortalCompanyUserReporttoService;


/******************************************************************************
 * @File name : PortalCompanyUserReporttoService.java
 * 
 * @Author : xl
 * 
 * @Date : 2016-8-22
 * 
 * @Copyright Notice: Copyright (c) 2016 Efast Serv. All Rights Reserved. This
 *            software is published under the terms of the Efast Software
 *            License version 1.0, a copy of which has been included with this
 *            distribution in the LICENSE.txt file.
 * 
 * 
 *            ------------------------------------------------------------------
 *            ---------- Date Who Version Comments 2016-8-22 下午3:01:42 xl 1.0
 *            Initial Version
 *****************************************************************************/
public interface IPortalCompanyUserReporttoService extends PortalCompanyUserReporttoService{
/**
 *  获取用户身份树
 * @Date        :      2016-8-26
 * @return
 */
	public List<PortalCompanyUserReporttoTreeDto> getCompanyIdentityTree();
	
	/**
	 *  获取当前公司结构树
	 * @Date        :      2016-8-26
	 * @return
	 */
		public List<PortalCompanyUserReporttoTreeDto> getCompanyTree();
/**
 * 获取选中用户的审批人
 * @Date        :      2016-8-26
 * @param username
 * @param names
 * @param id
 * @param positionId
 * @return
 */
	public Map<String, List<PortalCompanyUser>> getUserMultiple(String username, String[] names, Long positionId, Long orgId);
/**
 *  获取职位的 对应的用户
 * @Date        :      2016-8-26
 * @param names
 * @return
 */
	public Map<String, List<PortalCompanyUser>>   getPositionMultiple(String[] names);

	/** 保存选中用户的审批人
	 * @Date        :      2016-8-25
	 * @param username
	 * @param orgId
     * @param names
     * @return
	 */
	public String reporttoUser(String username, Long positionId, Long orgId, String[] names);

	/**保存职位 对应的用户
	 * @Date        :      2016-8-25
	 * @param positionId
	 * @param orgId
     * @param names
     * @return
	 */
	public String reporttoPosition(Long positionId, Long orgId, String[] names);
	
	/**选择或者查看默认职位
	 * @Date        :      2016-8-25
	 * @param positionId
	 * @param names
	 * @return
	 */
	public PortalCompanyUserReporttoTreeDto choiceDefaultPosition(PortalCompanyUserReporttoTreeDto bean);


	/**保存职位对应的用户
	 * @Date        :      2016-8-25
	 * @param positionId
	 * @param orgId
	 * @param usernames
	 * @return
	 */
	public void addUserByOrg(Long positionId, Long orgId, List<String> usernames);

	/**删除职位对应的用户
	 * @Date        :      2016-8-25
	 * @param positionId
	 * @param orgId
	 * @param usernames
	 * @return
	 */
	public void deleteUserByOrg(Long positionId, Long orgId, List<String> usernames);

}
